.TH std::unique_ptr::swap 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::unique_ptr::swap \- std::unique_ptr::swap

.SH Synopsis
   void swap( unique_ptr& other ) noexcept;  \fI(since C++11)\fP

   Swaps the managed objects and associated deleters of *this and another unique_ptr
   object other.

.SH Parameters

   other - another unique_ptr object to swap the managed object and the deleter with

.SH Return value

   \fI(none)\fP

.SH Example


// Run this code

 #include <iostream>
 #include <memory>

 struct Foo
 {
     Foo(int _val) : val(_val) { std::cout << "Foo...\\n"; }
     ~Foo() { std::cout << "~Foo...\\n"; }
     int val;
 };

 int main()
 {
     std::unique_ptr<Foo> up1(new Foo(1));
     std::unique_ptr<Foo> up2(new Foo(2));

     up1.swap(up2);

     std::cout << "up1->val:" << up1->val << '\\n';
     std::cout << "up2->val:" << up2->val << '\\n';
 }

.SH Output:

 Foo...
 Foo...
 up1->val:2
 up2->val:1
 ~Foo...
 ~Foo...
